// 给你一个有效的 IPv4 地址 address，返回这个 IP 地址的无效化版本。
// 所谓无效化 IP 地址，其实就是用 "[.]" 代替了每个 "."。

// 示例 1：
//  输入：address = "1.1.1.1"
//  输出："1[.]1[.]1[.]1"

// 示例 2：
// 输入：address = "255.100.50.0"
// 输出："255[.]100[.]50[.]0"

// char *defangIPaddr(char *address){}

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *defangIPaddr(char *address)
{
    int len = strlen(address);
    char *defanged = (char *)malloc(len + 6 + 1);
    if (!defanged)
    {
        return NULL;
    }

    int i = 0, j = 0;
    while (address[i] != '\0')
    {
        if (address[i] == '.')
        {

            defanged[j++] = '[';
            defanged[j++] = '.';
            defanged[j++] = ']';
        }
        else
        {
            defanged[j++] = address[i];
        }
        i++;
    }
    defanged[j] = '\0';

    return defanged;
}
int main()
{
    char *address = "1.1.1.1";
    char *defangedAddr = defangIPaddr(address);
    if (defangedAddr)
    {
        printf("%s\n", defangedAddr);
        free(defangedAddr); // 释放分配的内存
    }
    else
    {
        printf("Memory allocation failed or input too long!\n");
    }
    return 0;
}
